/**
 * 动物基类，定义了动物的基本属性和行为
 */
public class Animal {
    // 动物名称，子类可直接访问
    protected String name;

    /**
     * 构造函数，初始化动物名称
     * @param name 动物名称
     */
    public Animal(String name) {
        this.name = name;
    }

    /**
     * 动物发出声音的行为
     * 子类可以重写此方法实现特定叫声
     */
    public void speak() {
        System.out.println(name + " makes a sound.");
    }

    /**
     * 获取动物名称
     * @return 动物名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置动物名称
     * @param name 新的动物名称
     */
    public void setName(String name) {
        this.name = name;
    }
}

